--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / frontend / components / filesync / FilesyncDirectoryBrowserModal.vue
Displaying Raw • Download
meshchatx/src/frontend/components/filesync/FilesyncDirectoryBrowserModal.vue 67d5cdfe620830fbfa518fc123c40af3a4714264 (67d5cdfe) Text, 8.40 KB
T8b949e<!-- SPDX-License-Identifier: 0BSD -->
Tb4b4b4<Tff7b72templateTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3openTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"fixed inset-0 z-[60] flex items-center justify-center bg-black/50 p-4"
Tb4b4b4@Te6edf3clickTb4b4b4.Te6edf3selfTff7b72=Ta5d6ff"Te6edf3$emitTb4b4b4(Ta5d6ff'close'Tb4b4b4)Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"flex w-full max-w-lg max-h-[min(36rem,90vh)] flex-col rounded-2xl border border-sem-border-card bg-sem-surface shadow-xl"
Te6edf3roleTff7b72=Ta5d6ff"dialog"
Tb4b4b4:Te6edf3aria-labelTff7b72=Ta5d6ff"Te6edf3$tTb4b4b4(Ta5d6ff'rns_filesync.browser_title'Tb4b4b4)Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-center justify-between gap-2 border-b border-sem-border px-5 py-4"Tb4b4b4>
Tb4b4b4<Tff7b72h2 Te6edf3classTff7b72=Ta5d6ff"text-lg font-semibold text-sem-fg"Tb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"rns_filesync.browser_title"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72h2Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"rounded-lg p-1 text-sem-fg-muted hover:bg-sem-surface-muted"
Tb4b4b4:Te6edf3titleTff7b72=Ta5d6ff"Te6edf3$tTb4b4b4(Ta5d6ff'common.close'Tb4b4b4)Ta5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3$emitTb4b4b4(Ta5d6ff'close'Tb4b4b4)Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"close" Te6edf3classTff7b72=Ta5d6ff"size-5" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"px-5 pt-3 space-y-2"Tb4b4b4>
Tb4b4b4<Tff7b72p Te6edf3classTff7b72=Ta5d6ff"text-xs text-sem-fg-muted"Tb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"rns_filesync.browser_hint"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-center gap-2"Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"secondary-chip px-2.5 py-1.5 text-xs shrink-0"
Tb4b4b4:Te6edf3disabledTff7b72=Ta5d6ff"Te6edf3busy Tff7b72|| Tff7b72!Te6edf3parentTa5d6ff"
Tb4b4b4:Te6edf3titleTff7b72=Ta5d6ff"Te6edf3$tTb4b4b4(Ta5d6ff'rns_filesync.browser_up'Tb4b4b4)Ta5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3goParentTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"arrow-up" Te6edf3classTff7b72=Ta5d6ff"w-4 h-4" Tb4b4b4/Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"rns_filesync.browser_up"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"input-field flex-1 min-w-0 !py-2 font-mono text-xs truncate" Tb4b4b4:Te6edf3titleTff7b72=Ta5d6ff"Te6edf3currentTa5d6ff"Tb4b4b4>
Tff7b72{{ Te6edf3current Tff7b72|| Ta5d6ff"..." Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex-1 overflow-y-auto custom-scrollbar px-5 py-3"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3busy Tff7b72&& Te6edf3directoriesTb4b4b4.Te6edf3length Tff7b72=== T79c0ff0Ta5d6ff" Te6edf3classTff7b72=Ta5d6ff"py-8 text-center text-sm text-sem-fg-muted"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"rns_filesync.browser_loading"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3v-else-ifTff7b72=Ta5d6ff"Te6edf3directoriesTb4b4b4.Te6edf3length Tff7b72=== T79c0ff0Ta5d6ff" Te6edf3classTff7b72=Ta5d6ff"py-8 text-center text-sm text-sem-fg-muted"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"rns_filesync.browser_empty"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72ul Te6edf3v-else Te6edf3classTff7b72=Ta5d6ff"space-y-1"Tb4b4b4>
Tb4b4b4<Tff7b72li Te6edf3v-forTff7b72=Ta5d6ff"Te6edf3entry Tff7b72in Te6edf3directoriesTa5d6ff" Tb4b4b4:Te6edf3keyTff7b72=Ta5d6ff"Te6edf3entryTb4b4b4.Te6edf3pathTa5d6ff"Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"flex w-full items-center gap-2 rounded-lg border border-sem-border px-3 py-2 text-left text-sm transition-colors hover:bg-sem-surface-muted"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3enterDirectoryTb4b4b4(Te6edf3entryTb4b4b4.Te6edf3pathTb4b4b4)Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon
Te6edf3icon-nameTff7b72=Ta5d6ff"folder"
Te6edf3classTff7b72=Ta5d6ff"w-5 h-5 shrink-0 text-emerald-600 dark:text-emerald-400"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"min-w-0 truncate"Tb4b4b4>Tff7b72{{ Te6edf3entryTb4b4b4.Te6edf3name Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72liTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72ulTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"border-t border-sem-border px-5 py-3 space-y-3"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex flex-col sm:flex-row gap-2"Tb4b4b4>
Tb4b4b4<Tff7b72input
Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3newFolderNameTa5d6ff"
Te6edf3typeTff7b72=Ta5d6ff"text"
Te6edf3classTff7b72=Ta5d6ff"input-field flex-1 min-w-0 !py-2 text-sm"
Tb4b4b4:Te6edf3placeholderTff7b72=Ta5d6ff"Te6edf3$tTb4b4b4(Ta5d6ff'rns_filesync.browser_new_placeholder'Tb4b4b4)Ta5d6ff"
Tb4b4b4:Te6edf3disabledTff7b72=Ta5d6ff"Te6edf3busyTa5d6ff"
Tb4b4b4@Te6edf3keydownTb4b4b4.Te6edf3enterTb4b4b4.Te6edf3preventTff7b72=Ta5d6ff"Te6edf3createFolderTa5d6ff"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"secondary-chip px-3 py-2 text-xs shrink-0"
Tb4b4b4:Te6edf3disabledTff7b72=Ta5d6ff"Te6edf3busy Tff7b72|| Tff7b72!Te6edf3newFolderNameTb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4)Ta5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3createFolderTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"folder-plus-outline" Te6edf3classTff7b72=Ta5d6ff"w-4 h-4" Tb4b4b4/Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"rns_filesync.browser_new"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex justify-end gap-2"Tb4b4b4>
Tb4b4b4<Tff7b72button Te6edf3typeTff7b72=Ta5d6ff"button" Te6edf3classTff7b72=Ta5d6ff"secondary-chip px-4 py-2 text-sm" Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3$emitTb4b4b4(Ta5d6ff'close'Tb4b4b4)Ta5d6ff"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"common.cancel"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"primary-chip px-4 py-2 text-sm"
Tb4b4b4:Te6edf3disabledTff7b72=Ta5d6ff"Te6edf3busy Tff7b72|| Tff7b72!Te6edf3currentTa5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3confirmSelectionTa5d6ff"
Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"rns_filesync.browser_select"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72templateTb4b4b4>
Tb4b4b4<Tff7b72scriptTb4b4b4>
Tff7b72import Te6edf3MaterialDesignIcon Tff7b72from Ta5d6ff"../MaterialDesignIcon.vue"Tb4b4b4;
Tff7b72import Te6edf3ToastUtils Tff7b72from Ta5d6ff"../../js/ToastUtils"Tb4b4b4;
Tff7b72export Tff7b72default Tb4b4b4{
Te6edf3nameTff7b72: Ta5d6ff"FilesyncDirectoryBrowserModal"Tb4b4b4,
Te6edf3componentsTff7b72: Tb4b4b4{
Te6edf3MaterialDesignIconTb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3propsTff7b72: Tb4b4b4{
Te6edf3openTff7b72: Tb4b4b4{
Te6edf3typeTff7b72: Tffa657BooleanTb4b4b4,
Tff7b72defaultTff7b72: Tff7b72falseTb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3initialPathTff7b72: Tb4b4b4{
Te6edf3typeTff7b72: Tffa657StringTb4b4b4,
Tff7b72defaultTff7b72: Ta5d6ff""Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3emitsTff7b72: Tb4b4b4[Ta5d6ff"close"Tb4b4b4, Ta5d6ff"select"Tb4b4b4]Tb4b4b4,
Te6edf3dataTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4{
Te6edf3busyTff7b72: Tff7b72falseTb4b4b4,
Te6edf3rootTff7b72: Ta5d6ff""Tb4b4b4,
Te6edf3currentTff7b72: Ta5d6ff""Tb4b4b4,
Te6edf3parentTff7b72: Tff7b72nullTb4b4b4,
Te6edf3directoriesTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4,
Te6edf3newFolderNameTff7b72: Ta5d6ff""Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3watchTff7b72: Tb4b4b4{
Te6edf3openTff7b72: Tb4b4b4{
Te6edf3immediateTff7b72: Tff7b72trueTb4b4b4,
Tff7b72async Te6edf3handlerTb4b4b4(Te6edf3isOpenTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3isOpenTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3newFolderName Tff7b72= Ta5d6ff""Tb4b4b4;
Tff7b72const Te6edf3start Tff7b72= Tffa657StringTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3initialPath Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3loaded Tff7b72= Tff7b72await Tff7b72thisTb4b4b4.Te6edf3loadTb4b4b4(Te6edf3start Tff7b72|| Tff7b72undefinedTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3loaded Tff7b72&& Te6edf3startTb4b4b4) Tb4b4b4{
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3loadTb4b4b4(Tff7b72undefinedTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3methodsTff7b72: Tb4b4b4{
Tff7b72async Te6edf3loadTb4b4b4(Te6edf3pathTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3busy Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3url Tff7b72= Te6edf3path
Tff7b72? Ta5d6ff`Ta5d6ff/api/v1/filesync/directories?path=Tffd700${Tffa657encodeURIComponentTb4b4b4(Te6edf3pathTb4b4b4)Tffd700}Ta5d6ff`
Tff7b72: Ta5d6ff"/api/v1/filesync/directories"Tb4b4b4;
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3getTb4b4b4(Te6edf3urlTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3data Tff7b72= Te6edf3responseTff7b72?Tb4b4b4.Te6edf3data Tff7b72|| Tb4b4b4{Tb4b4b4}Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3root Tff7b72= Te6edf3dataTb4b4b4.Te6edf3root Tff7b72|| Ta5d6ff""Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3current Tff7b72= Te6edf3dataTb4b4b4.Te6edf3current Tff7b72|| Ta5d6ff""Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3parent Tff7b72= Te6edf3dataTb4b4b4.Te6edf3parent Tff7b72|| Tff7b72nullTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3directories Tff7b72= Tffa657ArrayTb4b4b4.Te6edf3isArrayTb4b4b4(Te6edf3dataTb4b4b4.Te6edf3directoriesTb4b4b4) Tff7b72? Te6edf3dataTb4b4b4.Te6edf3directories Tff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3errTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3errTff7b72?Tb4b4b4.Te6edf3message Tff7b72|| Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"rns_filesync.error"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4} Tff7b72finally Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3busy Tff7b72= Tff7b72falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3enterDirectoryTb4b4b4(Te6edf3pathTb4b4b4) Tb4b4b4{
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3loadTb4b4b4(Te6edf3pathTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3goParentTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3parentTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3loadTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3parentTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3createFolderTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3name Tff7b72= Tffa657StringTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3newFolderName Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3nameTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3busy Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3postTb4b4b4(Ta5d6ff"/api/v1/filesync/directories"Tb4b4b4, Tb4b4b4{
Te6edf3parentTff7b72: Tff7b72thisTb4b4b4.Te6edf3currentTb4b4b4,
Te6edf3nameTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3created Tff7b72= Te6edf3responseTff7b72?Tb4b4b4.Te6edf3dataTff7b72?Tb4b4b4.Te6edf3pathTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3newFolderName Tff7b72= Ta5d6ff""Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"rns_filesync.browser_created"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3createdTb4b4b4) Tb4b4b4{
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3loadTb4b4b4(Te6edf3createdTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3loadTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3currentTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3errTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3errTff7b72?Tb4b4b4.Te6edf3message Tff7b72|| Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"rns_filesync.error"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72finally Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3busy Tff7b72= Tff7b72falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3confirmSelectionTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3path Tff7b72= Tffa657StringTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3current Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3pathTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3$emitTb4b4b4(Ta5d6ff"select"Tb4b4b4, Te6edf3pathTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3$emitTb4b4b4(Ta5d6ff"close"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4<Tb4b4b4/Tff7b72scriptTb4b4b4>
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────